JEP290简介 JEP290增强机制是在2016年提出的一个针对JAVA 9的一个新特性,用于缓解反序列化攻击,随后官方决定向下引进该增强机制,分别对JDK 6,7,8进行了支持: Java SE Development Java SE Development Kit 7, Update 131 (JDK 7u131) Java SE Development Kit 6, Update 141 (JDK 6u141) JEP290 提供一个限制反序列化类的机制,白名单或者黑名单 限制反序列化的深度和复杂度 为RMI远程调用对象提供了一个验证类的机制 定义一个可配置的过滤机制,比如可以通过配置properties文件的形式来定义过滤器 JEP290 JEP290绕过 实现原理 在RMI远程方法调用过程中,方法参数需要先序列化,从本地JVM发送到远程JVM,然后在远程JVM上反序列化,执行完后再将结果序列化,发送回本地JVM,而本地的参数是我们可以控制的 /blogs/766093/posts/3135411 https://mogwailabs.de/en/blog/2019/03/attacking-java-rmi-services-after-jep
本文将深入剖析这一问题的历史根源、技术危害,并详细解读JEP500在JDK26中引入的警告机制及其背后的弃用策略。 JEP500的提出,标志着Java平台决心正视并解决这一历史遗留问题。 第二章:JEP500的解决方案——温和而坚定的弃用路径JEP500的核心哲学是渐进式变革。 2.1JDK26:发出强烈警告在JDK26中,JEP500的主要体现是日志警告。 第三章:对开发生态的影响与应对策略JEP500的涟漪效应将波及整个Java生态。
简介 JEP290是Java官方提供的一套来防御反序列化的机制,其核心在于提供了一个ObjectInputFilter接口,通过设置filter对象,然后在反序列化(ObjectInputStream# JEP 290 在 JDK 9 中加入,但在 JDK 6,7,8 一些高版本中也添加了: Java? ObjectInputFilter$Config$Global 接着上面的分析,我们跟进该类的createFilter方法 将传入的JEP规则字符串var0传入Global内部静态类的构造方法中,创建了一个 查看官方文档,我们知道JEP 290的编写规则为: 如果模式以“!”开头,如果模式的其余部分匹配,则该类被拒绝,否则被接受 如果模式包含“/”,则“/”之前的非空前缀是模块名称。
JEP290 0x01 什么是JEP? JDK Enhancement Proposal 简称JEP,是 JDK 增强提议的一个项目,目前索引编号已经达到了JEP415,本文重点来谈谈什么是JEP290,JEP290做了哪些事,JEP290绕过的方法总结等 0x02 什么是JEP290? Serialization Data JEP290 是 Java 为了防御反序列化攻击而设置的一种过滤器,其在 JEP 项目中编号为290,因而通常被简称为JEP290 0x03 JEP290的适用范围 值得注意的点 JEP290需要手动设置,只有设置了之后才会有过滤,没有设置的话就还是可以正常的反序列化漏洞利用 JEP290默认只为 RMI 注册表(RMI Register层)、 RMI分布式垃圾收集器
JEP290简介 JEP290增强机制是在2016年提出的一个针对JAVA 9的一个新特性,用于缓解反序列化攻击,随后官方决定向下引进该增强机制,分别对JDK 6,7,8进行了支持: Java SE Development Java SE Development Kit 7, Update 131 (JDK 7u131) Java SE Development Kit 6, Update 141 (JDK 6u141) JEP290 提供一个限制反序列化类的机制,白名单或者黑名单 限制反序列化的深度和复杂度 为RMI远程调用对象提供了一个验证类的机制 定义一个可配置的过滤机制,比如可以通过配置properties文件的形式来定义过滤器 JEP290 Status.REJECTED : Status.ALLOWED; } JEP290绕过 实现原理 在RMI远程方法调用过程中,方法参数需要先序列化,从本地JVM发送到远程JVM,然后在远程JVM上反序列化 /blogs/766093/posts/3135411 https://mogwailabs.de/en/blog/2019/03/attacking-java-rmi-services-after-jep
前言 本月(2020-03) Java 14 就该正式发布了,有一个 Java 社区呼唤已久的特性将作为 preview feature包含在 Java 14 中 ,这就是 JEP 359: Records
作者 | Michael Redlich 译者 | 平川 策划 | 丁晓昀 2022 年 1 月 31 日的 Java 每周新闻综述,主要介绍了 OpenJDK(JEP 423)、JDK 18 OpenJDK JEP 423(Region Pinning for G1)从草案状态提升为候选状态。 该 JEP 提案通过在 G1 垃圾收集器中实现区域钉选(region pinning)来减少 GC 延迟。
译者 | 平川 策划 | 丁晓昀 JEP 471(弃用 sun.misc.Unsafe 中的内存访问方法以备删除)已经在 JDK 23 中发布。 该 JEP 建议弃用 Unsafe 类中的内存访问方法,以便在将来的版本中删除。 这些不再支持的方法已经被标准 API 所取代:JEP 193(变量句柄,已在 JDK 9 中交付)和 JEP 454(外部函数和内存 API,已在 JDK 22 中交付)。 VarHandle API(即在 JDK 9 中交付的 JEP 193)提供了安全操作堆内存的方法,可以确保操作有效执行并且不会出现未定义的行为。 外部函数和内存 API(即在 JDK 22 中交付的 JEP 454)提供了安全的堆外内存访问方法,通常与 VarHandle 搭配使用来管理 JVM 堆内和堆外内存。
又遇到500了,是500服务器内部错误,不是两个250. 宽带换套餐迟了,只好销户再开,也就从前天起没法上网了,昨天早上用手机登陆网站的时候发现500错误了,以为只是一会,结果晚上了还没好,就联系电信机房把我的宽带账号激活,赶紧看看出啥事了。 上次也出现过500错误,那次是hotlink保护设置的不对,这次没对网站做任何修改就500了,看了下错误日志,都是要访问的网页不存在,找不到具体的原因,就去衡天提交支持单,回复就是查看文件权限和.htaccess 原文链接:https://www.kudou.org/500-again.html
游戏玩到歇会的间隙,打开网站看看,结果500错误了,刷新,还是500。搜……,很多asp的解决办法,没用,掠过,php的,在.htaccess文件想办法,我也看不懂里面的规则,也就没打开去细看。 原文链接:https://www.kudou.org/500-error.html
最近在 github 发现了一个有趣的项目,《深度学习500问》,由川大一名优秀毕业生创建。 目前,该项目的 star 数已经超过 24000,有 6700 多次 Fork,项目地址: https://github.com/scutan90/DeepLearning-500-questions 这 18 个章节涉及到深度学习的各个方面: 深度学习500问,以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,以帮助自己及有需要的读者。 AI 科技大本营:您是什么时候开始写《深度学习500问》的?初衷是什么? AI 科技大本营:《深度学习500问》大概什么时候完成?目前还缺少两章节的内容有什么样的规划? 谈继勇:本来打算一年内完成,但由于项目、paper等众多因素影响,精力有限,使得计划延期。
不少小伙伴安装,或者升级主题后会遇到这个情况,原因是因为后台部分配置不适配,或者新的配置没有设置属性。
该 JEP 从 JEP 412(第一个孵化器,包含在 JDK 17 中)演化而来,根据 Java 社区的反馈做了改进,变化包括:支持更多的内存访问句柄,如 boolean 和 MemoryAddress JEP 419 的评审将在 2021 年 11 月 23 号结束。 instanceof 的模式匹配(JEP 394)包含在 JDK 16 中。 JEP 422,即 Linux/RISC-V 移植,从 Draft 阶段进入到 Candidate 阶段。 JDK 18 目前的特性集合如下: JEP 400:默认字符集为 UTF-8; JEP 408:Simple Web Server; JEP 413:Java API 文档中加入了代码片段; JEP 416 :通过方法句柄重新实现代码反射; JEP 417:Vector API(第三个孵化器); JEP 418:网路地址解析 SPI; JEP 419: 外部函数和内存 API (第二个孵化器); JEP 420
Oracle 技术顾问成员 Gavin Bierman 为 Java 社区提供了这个 JEP 的初始规范,供社区评审并提供反馈意见。 JEP 447 放宽了这些限制,允许在显式构造函数调用之前出现不引用正在创建的实例的语句。 有了 JEP 447,这个过程变得更加简洁和直观。 这种直接的方法增强了可读性,减少对使用辅助方法的需求,展示了 JEP 447 在实际应用场景中的好处。 JEP 447 不仅提供了更大的灵活性,还保留了构造函数行为的基本保证,确保子类构造函数不会干扰超类的实例化。
PHP开发过程中经常会遇到返回500错误的情况,而且body体中也没有任何调试(可用)内容。 但既然是错误,总是会有处理方法,下面就一步步分析500的成因及处理方案。 0x01、500错误 500错误,也叫Internal Server Error(内部服务错误),表示服务因未知错误导致无法处理请求。 [php-fpm抓包500] 从上图中可以看出(Nginx+PHP-FPM架构),在PHP调用一个不存在的类时,脚本发生错误并返回500给Nginx(并且将错误信息也做了返回,只不过是卸载STDERR中 [E_ERROR级别错误导致的500] 0x03、什么情况下错误不会返回500 上面说了,这个是PHP脚本的错误导致的,但是PHP脚本有了错误或异常一定会导致500吗?
Oracle Java 语言和 Java 虚拟机规范负责人 Alex Buckley 更新了 JEP Draft 8300684(预览特性:一个向后,一个向前)。 该草案建议重新评审 JEP 12(预览特性)引入的预览过程,以便对该过程进行潜在的持续改进。 Oracle 技术团队主要成员 Wang Jun更新 了 JEP Draft 8301034(Key Encapsulation Mechanism API),这个 JEP 建议:满足标准 密钥封装机制 JDK 20 的最后 6 个特性包括: JEP 429:作用域值(孵化器); JEP 432:记录模式(第二次预览); JEP 433:switch 的模式匹配(第四次预览); JEP 434:外部函数和内存 API(第二次预览); JEP 436:虚拟线程(第二次预览); JEP 437:结构化并发(第二轮孵化器)。
由 ChatGPT 生成的文章摘要 这篇文章主要介绍了Java JEP 445,即预览中的JEP,引入了两个机制:未命名类和实例main方法,用于简化Java的main方法声明。 这篇帖子的文章内容只有这样一张图片: 如果你是一位苦逼的 Java 程序员,那么当你看到这张图的时候也许震惊的会跳起来,但是如果你没有看懂,那就且听我细细往下说…… JEP 445 的前世今生 JEP 事实上,JEP 445 早在 2023 年 2 月就被创建了,单之所以刚刚才火,是因为 OpenJDK 14 个小时前才批准了这个 JEP 的代码实现:JDK-8306112 Implementation 那么,JEP 445 到底引入了一套什么样的机制呢? 这篇 Reddit 文章下的高赞评论给出了 JEP 445 的链接,随后提问到:“这将是 Java 模板代码梗的末日吗”,我想,至少在 JEP 445 中,这种痛苦还远未结束吧。
作者 | A N M Bazlur Rahman 译者 | 明知山 策划 | 丁晓昀 JEP 428,即结构化并发 (孵化器阶段),已经从 Proposed 状态进入到 Target 状态。 在 Project Loom 的框架下,这个 JEP 提议引入一个库,将在不同线程中运行的多个任务视为原子操作,以此来简化多线程编程。它可以简化错误处理和取消操作,提高可靠性,并增强可观察性。 这个 API 运行在 JEP 425 之上——虚拟线程 (预览阶段),发布目标也为 JDK 19。
特性列表 JEP 500: Prepare to Make Final Mean Final 本特性旨在为未来版本限制通过深度反射修改final字段做准备,从JDK 26起,凡是通过Field::set staticStringcategory(Object price){ returnswitch(price){ caseint p when p <100->"BUDGET"; caseint p when p <500 ,整体概括如下:5个正式特性(JEP 500、504、516、517、522),4个预览特性(JEP 524、525、526、530),1个孵化器特性(JEP 529)。 JEP 500: Prepare to Make Final Mean Final JEP 504: Remove the Applet API JEP 516: Ahead-of-Time Object Title Status Project Feature Type Changes since Java 25 500 Prepare to Make Final Mean Final Core Libs
特性列表JEP500:PreparetoMakeFinalMeanFinal本特性旨在为未来版本限制通过深度反射修改final字段做准备,从JDK26起,凡是通过Field::set、MethodHandles.Lookup JEP504:RemovetheAppletAPI在JDK9的JEP289:DeprecatetheAppletAPI中首次废弃AppletAPI在JDK17的JEP398:DeprecatetheAppletAPIforRemoval 等原始类型staticStringcategory(Objectprice){returnswitch(price){caseintpwhenp<100->"BUDGET";caseintpwhenp<500 ,整体概括如下:5个正式特性(JEP500、504、516、517、522),4个预览特性(JEP524、525、526、530),1个孵化器特性(JEP529)。 JEP500:PreparetoMakeFinalMeanFinalJEP504:RemovetheAppletAPIJEP516:Ahead-of-TimeObjectCachingwithAnyGCJEP517